Power management in current personal computer (PC) platforms are performed by a combination of basic input output systems (BIOS) and System Management Mode (SMM) code utilizing hardware unique to each platform and device drivers with power saving features.
The BIOS and SMM code solution typically involves detecting inactivities of designated input/output (I/O) devices, such as a keyboard or mouse, in a computer system. After the designated I/O devices have been inactive for a predetermined period of time, the BIOS and SMM code puts the computer system in a sleep state where the computer system operates under low power by powering down various I/O devices and components in the computer system. While the BIOS and SMM strategy has successfully brought the PC platform into the mobile environment, it is beset with problems in the desktop environment where the PC may be connected to additional I/O devices not recognized by the BIOS and SMM code. I/O devices that are not recognized and not monitored by the BIOS and SMM code may have associated devices powered down or may themselves be powered down while in the middle of an operation. In addition, I/O devices that are not recognized by the BIOS and SMM code may be powered down completely when they require special power management such as auxiliary power to keep a portion of the I/O device active at all times.
Device drivers with power saving features also offer power management options. The device drivers monitor their corresponding devices for inactivity and puts those devices in a lower power state when the devices are inactive. However, since the device drivers are not aware of the applications running in the system, they manage the devices conservatively without taking full advantage of potential power savings.